<?php

try {
	
	// On récupère l'identifiant du mariage
	$idMariage = getIdMariage();
	
	//Pas de timeout pour le chargement de la page
	if ($_SERVER['SERVER_NAME'] !== SERVER_NAME) {
		set_time_limit(TIME_LIMIT_SEC);
	}
	
	//A Afficher
	$aAfficher = '';
	
	//Page à afficher
	$pageAAfficher = 1;
	
	//Tableau devant contenir les photos
	$aryPhotos = array();
	
	//Tableau images à afficher
	$aryUrlTdPhotosById = array();
		
	//On cherche le numéro de la page à afficher
	if (isset($_GET['pageCourante'])) {
		$pageAAfficher = intval($_GET['pageCourante']);
		if ($pageAAfficher === 0) {
			$pageAAfficher = 1;
		}
	}
	
	//Le cookie n'existe pas encore, on va l'initialiser
	if (!isset($_COOKIE[COOKIE_PHOTOS])) {
		//On met à jour le dossier dans lequel on va lire les photos avant de les charger
		majDossierPhotos();
		
		//On essaie d'ouvrir le dossier de référence
		$photosDir = @opendir(DOSSIER_PHOTOS);
		if ($photosDir === false) {
			$aAfficher = 'Erreur! Impossible d\'ouvrir le dossier contenant les photos!';
		} else {
			$numeroPage = 1;
			$nbPhotosParPage = 0;
			while (($file = readdir($photosDir)) !== false) {
				if (is_dir(DOSSIER_PHOTOS.'/'.$file)) {
					//Il s'agit d'un dossier, on passe au suivant
					continue;
				}
			
				// Récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
				$parsedFile = parseNomFichier($file);
				$extension = $parsedFile[EXTENSION];
				
				if (!in_array(strtolower($extension), $extPhotosAdmises)) {
					//Ce n'est pas une photo, on passe au suivant
					continue;
				}
				
				//On intialise le contenu de la page numéro $numeroPage
				if (!isset($aryPhotos[$numeroPage])) {
					$aryPhotos[$numeroPage] = array();
				}
				
				//On incrémente le nombre de photos par page et on rajoute dans le tableau des photos par page, la photo trouvée
				$nbPhotosParPage++;
				$aryPhotos[$numeroPage][] = $file;
							
				//On remplit le tableau des pages
				if ($nbPhotosParPage === NB_PHOTOS_PAR_PAGE) {
					$nbPhotosParPage = 0;
					$numeroPage++;
				}
			}
			closedir($photosDir);
		}
	} else {
		$aryPhotos = unserialize($_COOKIE[COOKIE_PHOTOS]);
	}
	
	//On vérifie que le numéro de page à afficher existe dans le tableau sinon, on l'initialise é 1
	if (!isset($aryPhotos[$pageAAfficher])) {
		$pageAAfficher = 1;
	}
	
	//On crée le cookie s'il ne contient pas déjà le tableau des photos
	if (!isset($_COOKIE[COOKIE_PHOTOS]) && !empty($aryPhotos)) {
		//Expire dans COOKIE_PHOTOS_LIFE_TIME_SEC secondes
		setcookie(COOKIE_PHOTOS, serialize($aryPhotos), time() + COOKIE_PHOTOS_LIFE_TIME_SEC);
	}
		
	//Si le tableau des photos par page n'est pas vide, on crée le html à afficher
	if (!empty($aryPhotos) && $aAfficher === '') {
		//On construit le tableau à afficher
		$aAfficher .= '<table id="tListPhotos"><tr>';
		$i = 1;
		foreach ($aryPhotos[$pageAAfficher] as $nomFichier) {
			$parsedNomFichier = parseNomFichier($nomFichier);
			$tdStyle = 'style="width:'.WIDTH_VIEW.';height:'.HEIGHT_VIEW.';"';
			$aAfficher .= '<td id="tdListPhotos" '.$tdStyle.'><img src="/workspace/photos/'.rawurlencode($nomFichier).'" alt="'.$nomFichier.'" /><br /><strong>'.$parsedNomFichier[NOM_FICHIER].'</strong></td>'."\n";
			if (($i%NB_COLONNES) === 0) {
				$aAfficher .= '</tr><tr>';
			}
			$i++;
		}
		//On complète le tableau à afficher
		while (($i%NB_COLONNES) !== 0) {
			//On complète le tag table pour valider le html
			//$aAfficher .= '<td></td>';
			$i++;
		}
		$aAfficher .= '</tr></table>';
		
		$pagination = '';
		//On met en place la pagination uniquement s'il y a plus d'une page à afficher
		if (count($aryPhotos) > 1) {
			$pagination .= '<center>';
			$pagination .= '<a class="pagination" href="'.getUriPhotos($idMariage).'/1"> <<  </a>'."\n";
			
			//On affiche si nécessaire la flèche pour la page précédente
			if ($pageAAfficher > 1) {
				$pagePrecedente = $pageAAfficher - 1;
				$pagination .= '<a class="pagination" href="'.getUriPhotos($idMariage).'/'.$pagePrecedente.'">  < </a>'."\n";
			}
			
			// Affichage des numéros de page
			foreach ($aryPhotos as $numPage => $tabPhotos) {
				if ($numPage === $pageAAfficher) {
// 					$pagination .= '<a id="pageCourante" class="pagination" href="'.getUriPhotos($idMariage).'/'.$numPage.'">  '.$numPage.' </a>'."\n";
					$pagination .= '<span id="pageCourante" class="pagination">  '.$numPage.' </span>'."\n";
				} else {
					$pagination .= '<a class="pagination" href="'.getUriPhotos($idMariage).'/'.$numPage.'">  '.$numPage.' </a>'."\n";
				}
			}
			
			//On affiche si nécessaire la flèche pour la page suivante
			if ($pageAAfficher < count($aryPhotos)) {
				$pageSuivante = $pageAAfficher + 1;
				$pagination .= '<a class="pagination" href="'.getUriPhotos($idMariage).'/'.$pageSuivante.'">  > </a>'."\n";
			}
			
			$lastPage = count($aryPhotos);
			$pagination .= '<a class="pagination" href="'.getUriPhotos($idMariage).'/'.$lastPage.'">  >> </a>'."\n";
			$pagination .= '</center>';
			
			//On complète la page à afficher
			$aAfficher .= '<br />'.$pagination;
		}
	}
?>

<div>
	<div id="envoiPhotos" class="centered">
		<p class="bold">
			Si vous d&eacute;sirez recevoir l'original de certaines photos, merci de faire votre demande en cliquant sur le lien suivant :
			<a title="Demande de photos par mail" onclick="javascript:window.open('<?php echo getUriEnvoiMail($idMariage); ?>', 'Demande_envoi_photos', '<?php echo ENVOI_PHOTOS_WINDOW_OPTIONS;?>')" href="#">Demande d'envoi de photos</a>.<br />
		</p>
		<p><br /></p>
		NB : <br />
		<ul class="note bold">
			<li>Au pied de chaque photo est indiqu&eacute; le nom/num&eacute;ro correspondant.</li>
			<li>Merci de renseigner dans le mail le/les nom/numéro(s) des photos qui vous int&eacute;resse(nt).</li>
			<li>Une r&eacute;ponse avec les photos demand&eacute;es vous sera envoy&eacute;e &agrave; l'adresse e-mail fournie dans les plus brefs délais.</li>
			<li>De nouvelles photos sont suceptibles d'appara&icirc;tre toutes les <?php echo COOKIE_PHOTOS_LIFE_TIME_SEC/60 ?> minutes.</li>
		</ul>
	</div>
	<p><br /></p>
	<?php echo $aAfficher; ?>
</div>

<?php } // try {
	catch (Exception $e) {
		redirectErrorPage($e, 'TAB_PHOTO_CONSULTATION', URI_ERROR_PAGE);
	}
?>